package com.huike.clues.service;


import com.huike.common.core.domain.TreeSelect;
import com.huike.common.core.domain.entity.SysDeptDTO;

import java.util.List;

public interface ISysDeptService {
    /**
     * 分页查询
     * @param dept
     * @return
     */
    List<SysDeptDTO> selectDeptList(SysDeptDTO dept);

    /**
     * 根据id查询详情
     * @param deptId
     * @return
     */
    SysDeptDTO selectDeptById(Long deptId);
    /**
     * 构建前端所需要树结构
     *
     * @param depts 部门列表
     * @return 树结构列表
     */
    public List<SysDeptDTO> buildDeptTree(List<SysDeptDTO> depts);
    /**
     * 构建前端所需要下拉树结构
     *
     * @param depts 部门列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildDeptTreeSelect(List<SysDeptDTO> depts);

    public List<TreeSelect> buildDeptAndUserTree(List<SysDeptDTO> depts);

    List<Integer> selectDeptListByRoleId(Long roleId);

    String checkDeptNameUnique(SysDeptDTO dept);

    int insertDept(SysDeptDTO dept);

    int selectNormalChildrenDeptById(Long deptId);

    int updateDept(SysDeptDTO dept);

    boolean hasChildByDeptId(Long deptId);

    boolean checkDeptExistUser(Long deptId);

    int deleteDeptById(Long deptId);

    List<SysDeptDTO> selectDeptAndUserList();

}
